package com.coderising.jvm;

import com.coderising.jvm.util.Util;

public class ClassFileParser {
	
	static ClassFile classFile= new ClassFile();
	
	
	public static  ClassFile parseClassFile(byte[] classFileBytes){
		
		String magicNumber=parseMagicNumber(classFileBytes);
		int minorVersion=parseminorVersion(classFileBytes);
		int majorVersion=parseMajorVersion(classFileBytes);
		
		classFile.setMagicNumber(magicNumber);
		classFile.setMinorVersion(minorVersion);
		classFile.setMajorVersion(majorVersion);
		
		return classFile;
	}
	

	private static int parseMajorVersion(byte[] classFileBytes) {
		byte[] bytes = {classFileBytes[6],classFileBytes[7]};
		return Util.byte2ToInteger(bytes);
	}


	private static int parseminorVersion(byte[] classFileBytes) {
		byte[] bytes = {classFileBytes[4],classFileBytes[5]};
		return Util.byte2ToInteger(bytes);
	}


	static public String parseMagicNumber(byte[] classFileBytes){
		
		byte[] bytes = {classFileBytes[0],classFileBytes[1],classFileBytes[2],classFileBytes[3]};
		return Util.byteToHexString(bytes);
	}
	
}
